package com.weixin.interfaces;

import com.weixin.pojo.message.Message;
import com.weixin.pojo.message.event.ClickReceiveEvent;
import com.weixin.pojo.message.event.LocationReceiveEvent;
import com.weixin.pojo.message.event.ReceiveEvent;
import com.weixin.pojo.message.event.ScanReceiveEvent;
import com.weixin.pojo.message.event.SubscribeReceiveEvent;
import com.weixin.pojo.message.event.ViewReceiveEvent;
import com.weixin.pojo.message.receive.ImageReceiveMessage;
import com.weixin.pojo.message.receive.LinkReceiveMessage;
import com.weixin.pojo.message.receive.LocationReceiveMessage;
import com.weixin.pojo.message.receive.ShortVideoReceiveMessage;
import com.weixin.pojo.message.receive.TextReceiveMessage;
import com.weixin.pojo.message.receive.VideoReceiveMessage;
import com.weixin.pojo.message.receive.VoiceReceiveMessage;

/** 
 * 类描述：微信服务器处理<br>
 * <br/>
 * 创建人：邓强   <br>
 * 创建时间：2017年11月1日 下午4:49:33    <br> 
 * 修改人：  <br>
 * 修改时间：2017年11月1日 下午4:49:33   <br>  
 * 修改备注：     <br>
 * @version   V1.0      
 */
public interface WeiXinMsg {
	/**
	 * 处理文本消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:44:36    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:44:36   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleTextMsg(TextReceiveMessage message);

	/**
	 * 处理图片消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:04    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:04   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleImageMsg(ImageReceiveMessage message);

	/**
	 * 处理语音消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:08    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:08   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleVoiceMsg(VoiceReceiveMessage message);

	/**
	 * 处理视频消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:12    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:12   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleVideoMsg(VideoReceiveMessage message);

	/**
	 * 处理小视频消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:16    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:16   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleShortVideoMsg(ShortVideoReceiveMessage message);

	/**
	 * 处理地理位置消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:20    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:20   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleLocationMsg(LocationReceiveMessage message);

	/**
	 * 处理链接消息<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:23    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:23   <br>  
	 * 修改备注：     <br> 
	 * @param message
	 * @return
	 */
	Message handleLinkMsg(LinkReceiveMessage message);
	
	/**
	 * 处理普通关注事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:28    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:28   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleSubscribeEvent(ReceiveEvent event);

	/**
	 * 处理取消关注事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:32    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:32   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleUnSubscribeEvent(ReceiveEvent event);

	/**
	 * 处理扫描带参数二维码事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:35    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:35   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleSubscribeEvent(SubscribeReceiveEvent event);

	/**
	 * 处理用户已关注时的事件推送，扫码事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:39    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:39   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleScanEvent(ScanReceiveEvent event);

	/**
	 * 处理上报地理位置事件<br>
	 * 用户同意上报地理位置后，每次进入公众号会话时，都会在进入时上报地理位置，或在进入会话后每5秒上报一次地理位置，公众号可以在公众平台网站中修改以上设置。<br>  
	 * 上报地理位置时，微信会将上报地理位置事件推送到开发者填写的URL。<br>  
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:43    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:43   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleLocationEvent(LocationReceiveEvent event);
	
	/**
	 * 处理点击菜单拉取消息时的事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:46    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:46   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleClickEvent(ClickReceiveEvent event);

	/**
	 * 处理点击菜单跳转链接时的事件<br>
	 * <br>  
	 * 创建人：邓强   <br>
	 * 创建时间：2017年11月6日 下午2:45:50    <br> 
	 * 修改人：  <br>
	 * 修改时间：2017年11月6日 下午2:45:50   <br>  
	 * 修改备注：     <br> 
	 * @param event
	 * @return
	 */
	Message handleViewEvent(ViewReceiveEvent event);
}
